package com.qzxy.premiumhotelsystem.utils;


import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.stereotype.Component;


/**
 * bcypt密码加密方式
 */
@Component
public class Bcrypt {
    private static final BCryptPasswordEncoder bcryptPasswordEncoder = new BCryptPasswordEncoder();


    /**
     *
     加密密码：将用户输入的原始密码（rawPassword）进行加密。
     返回加密后的密码：返回一个加密后的字符串，这个字符串通常会被存储在数据库中。
     */

    public String encode(CharSequence rawPassword) {
        return bcryptPasswordEncoder.encode(rawPassword);
    }

    /**
     *
     校验密码：将用户输入的原始密码（rawPassword）与存储在数据库中的加密密码（encodedPassword）进行比对。
     返回匹配结果：如果原始密码和加密密码匹配，返回 true；否则，返回 false。
     */

    public boolean matches(CharSequence rawPassword, String encodedPassword) {
        return bcryptPasswordEncoder.matches(rawPassword, encodedPassword);
    }
}
